배경
- VPC 내 단일 서버를 통한 서비스를 구성하면 단일 서버가 장애 시 서비스를 받을 수 없음
- 지속적인 서비스 제공을 위해 서버를 다중화 구성하여 서비스의 연속성을 보장하는 고가용성 구성이 필요
ELB - 로드밸런서
리스너
- 리스너는 프로토콜 및 포트를 사용하여 연결 요청을 확인하는 프로세스입니다.
- 서비스하고자 하는 프로토콜과 포트를 지정하는 규칙(Rule)을 생성
대상그룹
- 하나 이상의 대상을 라우팅하여 부하 분산을 하는데 사용합니다.
- 대상 그룹에(Target Group) 속한 대상에 대해 주기적으로 확인하는 프로세스(Keepalive)를 통해 상태 확인(Health Check)을 수행합니다. 그리고 정상적인 상태의 대상에게만 데이터를 전달합니다.
ELB의 종류
ALB(Application Load Balancer)
- HTTP나 HTTPS와 같이 웹 애플리케이션에 대한 분산 처리를 제공하는 로드밸런서
- OSI 7계층에 특화되어 유연하게 관리, 그 외 프로토콜은 NBL 사용 권장
NLB(Network Load Balancer)
- TCP나 UDP 프로토콜에 대한 포트 정보를 정의하여 네트워크 기반의 분산 처리를 제공하는 로드밸런서
CLB(Classic Load Balancer)
- VPC의 예전 버전인 EC2-Classic에 대해서도 분산 처리를 제공할 수 있는 이전 세대의 로드밸런서
일반적인 VPC 환경에서는 ALB나 NLB를 사용하는 것이 적합
ALB vs NLB
ALB
- 다른 로드밸런서에 비해 처리 속도가 조금 느릴 수 있으나 HTTP(S)에 대해 세부적이고 다양한 정책으로 라우팅 할 수 있음
- URL 경로 기반 라우팅, 호스트 기반 라우팅, HTTP 헤더 기반 라우팅 등과 같이 다양한 규칙을 생성하여 포워드(Forward), 리다이렉션(Re-direction), 지정 HTTP 응답등의 작업 수행 가능
- ALB는 Lambda 함수를 호출하여 HTTP(S) 요청을 처리할 수 있음
NLB
- TCP, UDP, TLS 프로토콜에 대하여 로드밸런싱을 수행할 수 있는 OSI 4계층 레벨의 로드밸런서
- 고정 IP나 탄력적 IP를 보유할 수 있음
- VPC 엔드포인트 서비스로 연결하여 프라이빗 링크 구성할 수 있음
ELB 통신 방식
ELB 특징
고가용성
- 트래픽을 다수의 대상으로 분산하여 고가용성을 유지
상태 확인
- 대상 그룹에 대한 Keepalive를 통해 주기적으로 상태를 확인
보안기능
- 보안 그룹을 적용하여 보안 옵션을 부여할 수 있음(단, NLB는 보안 그룹이 적용 되지 않음)
4계층/7계층 로드밸런싱
- HTTP/HTTPS의 7계층의 애플리케이션을 로드밸런싱하거나 TCP/UDP의 4계층을 로드밸런싱할 수 있음
운영 모니터링
- ELB 애플리케이션 성능을 실시간으로 모니터링할 수 있음